Running Supernova
Install Supernova
Install Build Tools
Install Make
and gcc
. In Ubuntu:
sudo apt-get update
sudo apt-get install -y make gcc
Install Golang
Installing the Supernova node requires a version of Go 1.18 or higher. We recommend that you refer to the official documentation for accurate installation of the Go language. In this example, the below script installs the go 1.18.2 version for a simple installation.
curl -OL https://golang.org/dl/go1.18.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xvf go1.18.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
You can verify that the Go language has been successfully installed to the desired version by using the following command:
go version
Install Supernova Binary
In this step, we will install the Supernova binary. First, you must get the last released version to install the latest version of novad
.
git clone -b <latest-release-tag> git@github.com:carina-labs/nova.git
cd nova && make install
Once you have installed the Supernova binary, verify that you have installed the correct version using the following command:
novad version –long
Join Mainnet
This chapter describes how to participate in the Gamma network, the Supernova main network. You should have installed the Supernova binary to perform and understand this step.
Hardware Requirements
Type | RAM | Storage |
---|---|---|
Validator | 16GB | 500GB-2TB |
Full Node | 16GB | 2TB |
Default Node | 16GB | 1TB |
Configuration
The correct configuration is required for the nodes to participate in the mainnet successfully. It requires developers to download a normal Gamma-1 Genesis file and run novad.
Chain Initialization
To initialize Novad, name the desired node as the moniker. Explorer and other nodes will also identify your node into the moniker.
novad init <moniker>
Install Genesis File
Download the appropriate Genesis file for your Gamma-1 network to the /config
folder.
wget https://github.com/carina-labs/mainnet/raw/master/genesis.gamma-1.json.gz
gzip -d genesis.gamma-1.json.gz
mv genesis.gamma-1.json ~/.novad/config/genesis.json
Set Seed/peers Node
If you want to set up specific seed or permanent peer nodes, you must modify ~/.novad/config/config.toml
. Please refer to the following link for the published seed and peer list.
🔗 TBD
seeds = “<seed_node_id_1>@<seed_node_address_1>:26656,<seed_node_id_2>@<seed_node_address_2>:26656”
Persistent_peers = “<peer_node_id_1>@<peer_node>address_1>:26656,<peer_node_id_2>@<peer_node_address_2>:26656”
Set Nova Service
Nova is registered as a service and always works in the background.
You can start nova node using novad start
, but we highly recommend using background service.
sudo tee /etc/systemd/system/nova.service > /dev/null <<EOF
[Unit]
Description=Supernova Daemon
After=network-online.target
[Service]
User=$USER
ExecStart=$(which novad) start
Restart=always
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
After set up daemon service, we can start daemon.
sudo systemctl daemon-reload
sudo systemctl enable novad
sudo systemctl start novad
Check the logs,
journalctl -u novad -f
Set Cosmovisor (Optional)
Cosmvisor makes managing Nova services easier. For example, you might want to automatically update the version of Nova at a specific block height.
Cosmvisor installation is not required, but it is highly recommended for Cosmos-SDK-based blockchain maintenance.
Install Cosmovisor
Use the command below to install the Cosmovisor:
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@^1.0.0
Create the following folders in the path where Nova is installed:
mkdir -p ~/.novad/cosmovisor
mkdir -p ~/.novad/cosmovisor/genesis
mkdir -p ~/.novad/cosmovisor/genesis/bin
mkdir -p ~/.novad/cosmovisor/upgrades
Set the environment variable:
touch ~/.profile
export DAEMON_NAME=novad
export DAEMON_HOME=$HOME/.novad
export DAEMON_ALLOW_DOWNLOAD_BINARIES=false
export DAEMON_LOG_BUFFER_SIZE=512
export DAEMON_RESTART_AFTER_UPGRADE=true
export UNSAFE_SKIP_BACKUP=true
source ~/.profile
Copy the Supernova binary into the Cosmovisor's genesis:
cp $GOPATH/bin/novad ~/.novad/cosmovisor/genesis/bin
To verify that the configuration has been successfully completed, verify that the output of both commands is the same version of the Supernova binary.
cosmovisor version
novad version
If these 2 version are same, setup cosmovisor service.
sudo tee /etc/systemd/system/cosmovisor.service > /dev/null <<EOF
[Unit]
Description=Cosmovisor Daemon
After=network-online.target
[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=always
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
Next, we are going to start cosmovisor daemon,
sudo systemctl dammon-reload
sudo systemctl enable cosmovisor
sudo systemctl start cosmovisor
And check logs,
journalctl -u cosmovisor -f
Join Champagne Testnet
This chapter describes how to participate in the Champagne network, the Supernova test network.
Install chain with champagne network
git clone -b incentive_testnet git@github.com:carina-labs/nova.git
make install
Once you have installed the Supernova binary, verify that you have installed the correct version using the following command:
novad version --long
and it should be like,
champagne-{version}
Add Champagne seed & persistent peers
TBD
Install Genesis File
Download the appropriate Genesis file for your Champagne network.
wget https://github.com/Carina-labs/champagne/raw/main/champagne/genesis.json
mv genesis.json ~/.novad/config/genesis/json
Create Validator
If you want to participate as a validator, please use CreateValidator
transaction.
You should staking at least 1 NOVA, you can get NOVA token using faucet.
novad tx staking create-validator \
--amount 1000000unova \
--chain-id=champagne \
--moniker=< your_node_moniker > \
--website="your website" \
--details="Joining Champagne network" \
--commission-rate="0.1" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--identity=< if_you_have, you_can_enter_keybase_identity_optional > \
--from < validator_key_name > \
--gas-prices 0.025unova \
--keyring-backend < keyring_name > \
--pubkey=$(novad tendermint show-validator)
Set service or cosmovisor
You can refer mainnet guide
Test chain tendermint RPC
If you want to setup your development environment or relayers, you can use following rpc addresses.